package com.smart.mac.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smart.mac.model.dto.FlowQueryDTO;
import com.smart.mac.model.dto.FlowTaskDTO;
import com.smart.mac.model.vo.FlowProcInstVO;
import com.smart.mac.model.vo.FlowTaskVO;
import com.smart.mac.model.vo.UserTaskSimpleVO;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * FlowTaskService
 *
 * @Author mac
 */
public interface FlowTaskService {
    void backTask(String instanceId, String taskId);

    Page<FlowProcInstVO> myProcess(FlowQueryDTO queryDTO);

    Page<FlowTaskVO> todoList(FlowQueryDTO queryDTO);

    Page<FlowTaskVO> finishedList(FlowQueryDTO queryDTO);

    Boolean complete(FlowTaskDTO taskDTO);

    void delegateTask(FlowTaskDTO taskDTO);

    void assignTask(FlowTaskDTO taskDTO);

    void claim(FlowTaskDTO taskDTO);

    void unClaim(FlowTaskDTO taskDTO);

    void addSign(FlowTaskDTO taskDTO);

    void deleteSign(FlowTaskDTO taskDTO);

    InputStream diagram(String procInstId);

    void taskReject(FlowTaskDTO taskDTO);

    Map<String,Object> flowRecord(String procInsId);

    List<UserTaskSimpleVO> findReturnTaskList(FlowTaskDTO taskDTO);
}
